package com.menggudf.controller;

import java.io.File;
import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.menggudf.model.ResultModel;

/**
 * 图片操作
 * 
 * @author Administrator
 * 
 */
@Controller
@RequestMapping("imageOpt")
public class ImageOptController {
    
    @Value("#{configProperties['IMGURL']}")
    protected String IMGURL;
    
    private static final Logger LOGGER = LoggerFactory
            .getLogger(ImageOptController.class);
	
    /**
     * 图片文件上传
     */
    @ResponseBody
    @RequestMapping(value = "/photoUpload",method = RequestMethod.POST)
    public ResultModel photoUpload(MultipartFile file,HttpServletRequest request,HttpServletResponse response){
        if (file!=null) {// 判断上传的文件是否为空
            String path=null;// 文件路径
            String type=null;// 文件类型
            String fileName=file.getOriginalFilename();// 文件原名称
            /*System.out.println("上传的文件原名称:"+fileName);*/
            // 判断文件类型
            type=fileName.indexOf(".")!=-1?fileName.substring(fileName.lastIndexOf(".")+1, fileName.length()):null;
            if (type!=null) {// 判断文件类型是否为空
                if ("GIF".equals(type.toUpperCase())||"PNG".equals(type.toUpperCase())||"JPG".equals(type.toUpperCase())) {
                    // 项目在容器中实际发布运行的根路径
                    /*String realPath=request.getSession().getServletContext().getRealPath("/");*/
                    String realPath = IMGURL;
                    // 自定义的文件名称
                    String trueFileName=String.valueOf(System.currentTimeMillis())+fileName;
                    // 设置存放图片文件的路径
                    path=realPath+/*System.getProperty("file.separator")+*/trueFileName;
                    /*System.out.println("存放图片文件的路径:"+path);*/
                    // 转存文件到指定的路径
                    try {
                        file.transferTo(new File(path));
                        return ResultModel.success("文件成功上传到指定目录下", trueFileName);
                    } catch (IllegalStateException | IOException e) {
                        LOGGER.error("file.transferTo fail",e);
                    }
                    return ResultModel.fail("转存失败", null);
                }else {
                    return ResultModel.fail("不是我们想要的文件类型,请按要求重新上传", null);
                }
            }else {
                return ResultModel.fail("文件类型为空", null);
            }
        }else {
            return ResultModel.fail("没有找到相对应的文件", null);
        }
    }
	
}
